export interface FoundItems {
    foundItemId?: number |string;
    userId?: number | string;
    itemName?: string;
    description: string;
    foundLocation: string;
    foundTime?: Date | null;
    defaultPicture: string;
    status: number;
    createTime?: Date | null;
    updateTime?: Date |null;
    schoolId?: number | string;
}

export interface LostItems {
    lostItemId?: number |string;
    userId?: number | string;
    itemName: string;
    description: string;
    lostLocation?: string;
    lostTime?: Date | null;
    defaultPicture?: string;
    status: number;
    createTime?: Date |null;
    updateTime?: Date |null;
    remark?: string;
    schoolId?: number | string;
}

export interface RequestProcess {
    processId?: number; // 自增ID
    requestId: number; //
    processorId: number; // 处理人id
    actionTime: Date; // 处理时间
    actionType: number,//'verify' | 'reject' | 'complete'; // 处理状态
    notes?: string; // 备注
    returnMethod?: string; // 归还方式（线下，快递）
    completedTime?: Date; // 归还完成时间
    rating?: number; // 评价
}

export interface RequestVerifications {
    verificationId?: number, // 自增ID
    requestId: number, // 请求表编号
    itemDescription: string, // 物品描述
    lostTime?: Date, // 丢失时间（认领专用）
    lostLocation?: string, // 丢失地点（认领专用）
    proofImages: string,// 证明图片（一个数组）
    currentCondition?: string //'new' | 'good' | 'worn' | 'damaged',  (归还专用)物品当前状况
}
export interface ItemRequests {
    requestId?: number; // 请求编号
    itemId: number; // 失物/拾物ID
    userId: number; // 请求者
    requestType: number; // 请求类型（认领或者归还）
    status: number; // 状态
    createdTime: Date; // 申请时间
    contactInfo: string; // 联系方式
}
export interface RequestInfo extends ItemRequests{
    verifications: RequestVerifications;
    processList: RequestProcess[];
}
export interface ItemRequestSaveForm {
    requestType: number,//0丢失 1归还
    contactInfo: string,
    itemId: number | string,
    userId: number | string,
    itemDescription: string,
    lostTime: Date | null,
    lostLocation: string,
    proofImages: [],
}

export interface LostFoundCategory {
    lostFoundCategoryId?: number | string;
    name: string;
    description: string;
}
